package github.ziwukun.jsonql.lang;

import java.io.Serializable;
import java.util.List;

/**
 * JSONQL的limit语句
 * @author Hugo.Yu
 */
public interface Limit extends ToJSONQLable,Serializable{
	public static Limit readJson(String json) {
		return LimitJson.readJson(json);
	}
	
	public static LimitBuilder builder() {
		return new LimitBuilder();
	}
	
	
	/**受限制的模型*/
	String model();
	/**数量*/
	Integer size();
	/**偏移量*/
	Integer offset();
	/**页码*/
	Integer page();
	/**其他子模型的限制条件*/
	List<Limit> childs();
	boolean isChildsEmpty();
	
	Limit repModel(String model);
	Limit repSize(Integer size);
	Limit repOffset(Integer offset);
	Limit repPage(Integer page);
	Limit repChilds(List<Limit> limit);
}
